package com.ochnas.volunteersignup.service;

import java.util.List;

import org.springframework.transaction.annotation.Transactional;

import com.ochnas.volunteersignup.domain.Event;
import com.ochnas.volunteersignup.domain.Position;
import com.ochnas.volunteersignup.domain.Time;
import com.ochnas.volunteersignup.domain.TimeSlot;

public interface EventService {

	@Transactional
	Event createEvent(Event e);
	@Transactional
	Position createPositionForEvent(Event e, String name, String description, int requiredNumberOfVolunteers);
	@Transactional
	TimeSlot createTimeSlotForPosition(Position p, Time startTime, Time endTime, int quantityOfVolunteers);
	@Transactional
	Event updateEvent(Event e);
	@Transactional
	Position updatePositionOfEvent(Position p);
	@Transactional
	TimeSlot updateTimeSlotOfPosition(TimeSlot ts);
	@Transactional
	void deleteEvent(Long eventId);
	@Transactional
	void deletePositionOfEvent(Long positionId);
	@Transactional
	void deleteTimeSlotOfPosition(Long timeSlotId);
	Event findEvent(Long eventId);
	Position findPosition(Long positionId);
	TimeSlot findTimeSlot(Long timeSlotId);
	List<Event> findEventsByCoordinator(Long userId);
		
}
